package controllerInterfaces;

import java.util.List;

import pluginInterfaces.IRecommender;

/**
 * 
 * @author Andy Cullache
 *
 */
public interface IControllerOutputJarSetup {
	
	/**
	* Opens a view to set the directory and name of the component jar.
	* 
	* @return      a set of "String" size 2, contains the name and path of the component to generate.
	*/
	public String[] selectDirectory();
	
	/**
	* Returns the list of configurations of algorithms present in the current project.
	* 
	* @return      configuration list of algorithms.
	*/
	public List<IRecommender> getRecommenderList();
	
	/**
	* Sets the benchmark panel controller as controller of this class.
	* 
	* @param controller      panel controller class benchmark.
	*/
	public void setController(IControllerBenchmarkPanel controller);
	
	/**
	* Sets the CLI controller as controller of this class.
	* 
	* @param controller      CLI controller class
	*/
	public void setController(IControllerCLI controller);
	
	/**
	* Creates the output component as a jar file.
	* 
 	* @param nameSave      jar file name.
 	* @param controller      jar file directory.
 	* @param controller      configuration algorithm that is included in the jar file.
	*/
	public void createJarOutput(String nameSave, String dirPath, IRecommender recom);
	
}
